package com.uow.algdemo.animation;

import java.util.List;

public interface AnimationInterface
{
    /**
     * This method generate animation and start animation.
     */	
	public void runAnimation();
    /**
     * This method pause animation.
     */	
	public void pauseAnimation();
    /**
     * This method resume animation from pause position.
     */	
	public void resumeAnimation();
    /**
     * This method stop animation and clear layout.
     */	
	public void stopAnimation();
    /**
     * This method show next step of animation when animation is pause.
     */	
	public void nextStep();
    /**
     * This method show last step of animation when animation is pause.
     */	
	public void lastStep();
	/**
	 * @param steps The steps to set
	 */
	public void setSteps(List<int[][]> steps);
    /**
     * This method set speed of animation.
     * @param newSpeed Speed value to set.
     */	
	public void setSpeed(int newSpeed);
	/**
	 * @return The speed
	 */
	public int getSpeed();
	/**
	 * @return The status
	 */
	public boolean getStatus();
    /**
     * This method send feedback from this class for different command.
     * @param mes Message to current class.
     * @return An array for feedback information.
     */
	public int[][] sendMessage(int mes);
}
